package com.lxr.demo.common;

import org.apache.commons.codec.binary.Base64;
import java.security.MessageDigest;

public class MD5Utils {
    /**
     *
     * @Title: MD5Utils.java
     * @Package com.lxr.demo.common
     * @Description: 对字符串进行md5加密，并用base64进行编码
     */
    public static String getMD5Str(String strValue) throws Exception {
        //getInstance可能会有算法名字有误导致异常抛出，所以上级方法要抛出异常
        MessageDigest md5 = MessageDigest.getInstance("MD5");
        //将散列后的MD5摘要，再进行base64 编码，目的是为了获取字符串，而不是二进制数值
        return Base64.encodeBase64String(md5.digest(strValue.getBytes()));
    }

    /**
     * 测试用main方法，可注释掉
     * @param 输入要进行md5散列的字符串
     */
    public static void main(String[] args) {

        String md5 = null;
        try {
            md5 = getMD5Str("lxr");
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(md5);

    }
}
